package com.biavan.omservicos.dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.biavan.omservicos.model.PapelUsuario;
import com.biavan.omservicos.model.Usuario;

public class PapelUsuarioDAOImpl implements PapelUsuarioDAO {

	private static final Logger logger = LoggerFactory
			.getLogger(PapelUsuarioDAOImpl.class);

	private SessionFactory sessionFactory;

	public void setSessionFactory(SessionFactory sf) {
		this.sessionFactory = sf;
	}

	@Override
	public void insere(PapelUsuario papelUsuario) {
		Session session = this.sessionFactory.getCurrentSession();
		session.persist(papelUsuario);
		logger.info("PapelUsuario salvo com sucesso! | " + papelUsuario);

	}

	@Override
	public void remove(PapelUsuario papelUsuario) {
		Session session = this.sessionFactory.getCurrentSession();
		session.delete(papelUsuario);
		logger.info("PapelUsuario apagado com sucesso!");
	}
	
	@Override
	public List<PapelUsuario> listaByUsuario(Usuario usuario) {
		Session session = this.sessionFactory.getCurrentSession();
		
		List<PapelUsuario> papeis = new ArrayList<PapelUsuario>();
 
		papeis = session.createQuery("from PapelUsuario where usuario = :usuario")
			.setParameter("usuario", usuario).list();
 
		return papeis;
		
	}

}
